package com.bgs.eat.songMenu.service;

import com.bgs.eat.config.CommonResult;
import com.bgs.eat.page.PageRequest;
import com.bgs.eat.songMenu.entity.SongMenuEntity;
import org.springframework.web.multipart.MultipartRequest;

import java.util.List;

public interface SongMenuService {

    /**
     * 新增歌单 （创建歌单） （门户展示）
     * lzy 2022-9-5 09点24分
     * @param songMenuEntity
     * @return
     */
    CommonResult saveSongMenu(SongMenuEntity songMenuEntity);

    /**
     * 获取歌单信息列表
     * lzy 2022-9-5 09点53分
     * @param creatorId
     * @return
     */
    CommonResult getSongMenuList(Integer creatorId);

    /**
     * 删除歌单（门户展示）
     * lzy 2022-9-5 11点38分
     * @param id
     * @return
     */
    CommonResult deleteSongMenu(Integer id);

    /**
     * 获取被删除的表单（门户展示）
     * lzy 2022-9-5 14点58分
     * @param creatorId
     * @return
     */
    CommonResult getSongMenuListByDel(Integer creatorId);

    /**
     * 批量恢复歌单 （门户展示）
     * lzy 2022-9-5 15点33分
     * @param ids
     * @return
     */
    CommonResult renewSongMenus(Integer[] ids);

    /**
     * 批量彻底删除歌单 （门户展示）
     * lzy 2022-9-5 15点33分
     * @param ids
     * @return
     */
    CommonResult delSongMenus(Integer[] ids);

    /**
     * 歌单查重（门户展示）
     * lzy 2022-9-5 16点02分
     * @param songMenuName
     * @param creatorId
     * @return
     */
    CommonResult checkSongMenuName(String songMenuName, Integer creatorId);

    /**
     * 歌单信息查询（门户展示）
     * fys 2022-8-6 09点00分
     * @param id
     * @return
     */
    CommonResult getSongMenuDetails(Integer id);

    /**
     * 修改歌单信息
     * lzy 2022-9-6 14点30分
     * @param songMenuEntity
     * @param multipartRequest
     * @return
     */
    CommonResult editSongMenu(SongMenuEntity songMenuEntity, MultipartRequest multipartRequest);

    /**
     * 获取推荐歌单列表信息 （门户展示）
     * lzy 2022-9-7 08点51分
     * @param pageRequest
     * @param typeId
     * @return
     */
    CommonResult getSongMenuRecommend(PageRequest pageRequest,Integer typeId);

    /**
     * 根据用户id查询歌单名称
     * hbx 2022年9月8日11:34:18
     * @param creatorId
     * @return
     */
    List<SongMenuEntity> getSongMenuNameByCreatorId(Integer creatorId);

    /**
     * 根据歌单id查询歌单名称
     * hbx 2022年9月14日09:17:21
     * @param id
     * @return
     */
    List<SongMenuEntity> getSongMenuNameBySongMenuId(Integer id);

    /**
    * @Description 根据类别获取歌单
    * @Author lzy
    * @Date 2022/9/15 10:17
    * @Return java.util.List<com.bgs.music.songMenu.entity.SongMenuEntity>
    * @param typeId
    */
    List<SongMenuEntity> getSongMenuByType(Integer typeId);
}
